home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Science / MathPad 2.1.5 / examples / regression < prev    next >
Text File  |  1993-06-21  |  881b  |  37 lines

  1. -- "linear regression" fit x,y data to a line
  2. -- uses := to avoid re-calculating sums
  3. sumx := sum(x[i],i,1,n):
  4. sumxx:= sum(x[i]^2,i,1,n):
  5. sumy := sum(y[i],i,1,n):
  6. sumyy:= sum(y[i]^2,i,1,n):
  7. sumxy:= sum(x[i]*y[i],i,1,n):
  8.  
  9. Sxx=n*sumxx-sumx^2
  10. Sxy=n*sumxy-sumx*sumy
  11.  
  12. slope=Sxy/Sxx
  13. intercept=(sumxx*sumy-sumx*sumxy)/(n*sumxx-sumx^2)
  14. correlation=Sxy/sqrt(Sxx*(n*sumyy-sumy^2))
  15.  
  16. -- user must supply a data file of x y values.
  17. data=read("xydata")
  18. n=count(data)   -- number of data points
  19.  
  20. -- file is organized as x,y pairs. 
  21. x[i]=data[i,1] dim[n] -- Make sep x and y arrays
  22. y[i]=data[i,2] dim[n]
  23.  
  24. plot data                -- plot data points
  25. plot X*slope+intercept   -- plot best fit line
  26.  
  27. label slope:0.720
  28. label intercept:-1.122
  29. label correlation:0.973
  30.  
  31. -- Note: can also be used to do 2 param fit for other functions.
  32. ~
  33.  f(x) = -cos(x)
  34.  plot f(X)*slope+off
  35.  x[i]=f(data[i,1]) dim[n]
  36. ~